/**********************************************************************************************************************
 * Copyright (c) Prophesee S.A.                                                                                       *
 *                                                                                                                    *
 * Licensed under the Apache License, Version 2.0 (the "License");                                                    *
 * you may not use this file except in compliance with the License.                                                   *
 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0                                 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed   *
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.                      *
 * See the License for the specific language governing permissions and limitations under the License.                 *
 **********************************************************************************************************************/

// WARNING, AUTO-GENERATED FILE WAS EDITED TO ADD WRITEFIELD OPERATIONS

// ISSD sequences generated by psee_issd_convert.
// Parameters:
// issd_csv_format_version=1.0
// system=evk2_gen41_cd
// operator=Prophesee
// dry_run=False
// no_system=False
// strip_prefix=True
// sensor_version=None
// args=
// sensor=PseeEvk2Gen41
// date=2021-09-16T16:42:11
// psee_issd_version=1.1.3.215+g40ab73918.d20210008
// psee_sensor_lib_version=3.3.0.486+g1106e0921.d20210015
// issd_data_format_version=1.0

// clang-format off

#ifndef METAVISION_HAL_GEN41_EVK2_ISSD_H
#define METAVISION_HAL_GEN41_EVK2_ISSD_H

#include <vector>

namespace Metavision {

static const std::vector<RegisterOperation> gen41_evk2_init = {
    RegisterOperation::Read(0x00000800, 0x00000027, 0x000000FF),
    RegisterOperation::Write(0x00000004, 0x00000111),
    RegisterOperation::Write(0x00000000, 0x00000089),
    RegisterOperation::Write(0x00000000, 0x0000008D),
    RegisterOperation::Write(0x00000000, 0x000000CD),
    RegisterOperation::Write(0x00000008, 0x0000004E),
    RegisterOperation::Write(0x00002004, 0x00002000),
    RegisterOperation::Write(0x00000014, 0x00000000),
    RegisterOperation::Write(0x00000600, 0x00000001),
    RegisterOperation::Write(0x00000044, 0x00000000),
    RegisterOperation::Write(0x00000048, 0x00030D41),
    RegisterOperation::Write(0x00000018, 0x00000000),
    RegisterOperation::Write(0x00700000, 0x00000001),
    RegisterOperation::Write(0x0070F000, 0x00400000),
    RegisterOperation::Write(0x0070F000, 0x00400000),
    RegisterOperation::Write(0x0070F000, 0x00400000),
    RegisterOperation::Write(0x0070F030, 0x00000000),
    RegisterOperation::Write(0x0070F030, 0x00000000),
    RegisterOperation::Write(0x0070F030, 0x00000000),
    RegisterOperation::Write(0x0070F030, 0x00000000),
    RegisterOperation::Write(0x0070F000, 0x00400000),
    RegisterOperation::Write(0x0070F030, 0x00000000),
    RegisterOperation::Write(0x0070F038, 0x01405002),
    RegisterOperation::Write(0x0070F038, 0x01405000),
    RegisterOperation::Write(0x0070F024, 0x00000000),
    RegisterOperation::Write(0x0070F024, 0x00000001),
    RegisterOperation::Delay(500000),
    RegisterOperation::Write(0x0070F024, 0x00000003),
    RegisterOperation::Delay(500000),
    RegisterOperation::Write(0x0070F030, 0x00000000),
    RegisterOperation::Write(0x0070F030, 0x00000000),
    RegisterOperation::Write(0x0070F038, 0x01405001),
    RegisterOperation::Delay(1000),
    RegisterOperation::Write(0x0070F030, 0x00000100),
    RegisterOperation::Delay(1000),
    RegisterOperation::Write(0x0070F030, 0x00000300),
    // Digital INIT
    RegisterOperation::Write(0x00100064, 0x00000001),
    RegisterOperation::Write(0x0010B074, 0x00000002),
    RegisterOperation::Write(0x0010B078, 0x00000078),
    RegisterOperation::Write(0x00100000, 0x0C006402),
    RegisterOperation::Write(0x00100000, 0x0C001402),
    RegisterOperation::Write(0x00100000, 0x0C001442),
    RegisterOperation::Write(0x0010B068, 0x00000004),
    RegisterOperation::Write(0x0010B07C, 0x00000003),
    RegisterOperation::Delay(1000),
    RegisterOperation::Write(0x00100000, 0x4C001442),
    RegisterOperation::Write(0x00100000, 0x4C00144A),
    RegisterOperation::Write(0x00100000, 0x4C00140A),
    RegisterOperation::Write(0x00100000, 0x4C00640A),
    RegisterOperation::Write(0x00100000, 0x4C00644A),
    RegisterOperation::Write(0x0010B080, 0x00000067),
    RegisterOperation::Write(0x0010B084, 0x0000000F),
    RegisterOperation::Write(0x0010B088, 0x00000027),
    RegisterOperation::Write(0x0010B08C, 0x00000027),
    RegisterOperation::Write(0x0010B090, 0x000000B7),
    RegisterOperation::Write(0x0010B094, 0x00000047),
    RegisterOperation::Write(0x0010B098, 0x0000002F),
    RegisterOperation::Write(0x0010B09C, 0x0000004F),
    RegisterOperation::Write(0x0010B0A0, 0x0000002F),
    RegisterOperation::Write(0x0010B0A4, 0x00000027),
    RegisterOperation::Write(0x0010B0AC, 0x00000028),
    RegisterOperation::Write(0x0010B0CC, 0x00000001),
    RegisterOperation::Write(0x0010B000, 0x00000158),
    RegisterOperation::Write(0x0010B004, 0x0000008A),
    RegisterOperation::Write(0x0010B01C, 0x00000030),
    RegisterOperation::Write(0x0010B020, 0x00004000),
    RegisterOperation::Write(0x0010B040, 0x00000007),
    RegisterOperation::Write(0x0010A000, 0x00000101),
    RegisterOperation::Delay(200),
    RegisterOperation::Write(0x0010A008, 0x00002405),
    RegisterOperation::Delay(200),
    RegisterOperation::Write(0x0010A004, 0x00000101),
    RegisterOperation::Delay(200),
    RegisterOperation::Write(0x0010A020, 0x00000170),
    RegisterOperation::Delay(200),
    RegisterOperation::Write(0x0010B040, 0x0000000F),
    RegisterOperation::Write(0x0010B004, 0x0000008A),
    RegisterOperation::Delay(200),
    RegisterOperation::Write(0x0010B0C8, 0x00000003),
    RegisterOperation::Delay(200),
    RegisterOperation::Write(0x0010B044, 0x00000001),
    RegisterOperation::Write(0x0010B000, 0x00000159),
    RegisterOperation::Write(0x00109008, 0x00000640),
    RegisterOperation::Write(0x00108000, 0x0001E005),
    RegisterOperation::Write(0x00107008, 0x00000001),
    RegisterOperation::Write(0x00107000, 0x00070001),
    RegisterOperation::Write(0x00106008, 0x000000C8),
    RegisterOperation::Write(0x0010600C, 0x00000FA0),
    RegisterOperation::Write(0x00106004, 0x00000001),
    RegisterOperation::Write(0x0010602C, 0x00000001),
    RegisterOperation::Write(0x00106800, 0x08080808),
    RegisterOperation::Write(0x00106804, 0x08080808),
    RegisterOperation::Write(0x00106808, 0x08080808),
    RegisterOperation::Write(0x0010680C, 0x08080808),
    RegisterOperation::Write(0x00106810, 0x08080808),
    RegisterOperation::Write(0x00106814, 0x08080808),
    RegisterOperation::Write(0x00106818, 0x08080808),
    RegisterOperation::Write(0x0010681C, 0x08080808),
    RegisterOperation::Write(0x00106820, 0x08080808),
    RegisterOperation::Write(0x00106824, 0x08080808),
    RegisterOperation::Write(0x00106828, 0x08080808),
    RegisterOperation::Write(0x0010682C, 0x08080808),
    RegisterOperation::Write(0x00106830, 0x08080808),
    RegisterOperation::Write(0x00106834, 0x08080808),
    RegisterOperation::Write(0x00106838, 0x08080808),
    RegisterOperation::Write(0x0010683C, 0x08080808),
    RegisterOperation::Write(0x00106840, 0x08080808),
    RegisterOperation::Write(0x00106844, 0x08080808),
    RegisterOperation::Write(0x00106848, 0x08080808),
    RegisterOperation::Write(0x0010684C, 0x08080808),
    RegisterOperation::Write(0x00106850, 0x08080808),
    RegisterOperation::Write(0x00106854, 0x08080808),
    RegisterOperation::Write(0x00106858, 0x08080808),
    RegisterOperation::Write(0x0010685C, 0x08080808),
    RegisterOperation::Write(0x00106860, 0x08080808),
    RegisterOperation::Write(0x00106864, 0x08080808),
    RegisterOperation::Write(0x00106868, 0x08080808),
    RegisterOperation::Write(0x0010686C, 0x08080808),
    RegisterOperation::Write(0x00106870, 0x08080808),
    RegisterOperation::Write(0x00106874, 0x08080808),
    RegisterOperation::Write(0x00106878, 0x08080808),
    RegisterOperation::Write(0x0010687C, 0x08080808),
    RegisterOperation::Write(0x00106880, 0x08080808),
    RegisterOperation::Write(0x00106884, 0x08080808),
    RegisterOperation::Write(0x00106888, 0x08080808),
    RegisterOperation::Write(0x0010688C, 0x08080808),
    RegisterOperation::Write(0x00106890, 0x08080808),
    RegisterOperation::Write(0x00106894, 0x08080808),
    RegisterOperation::Write(0x00106898, 0x08080808),
    RegisterOperation::Write(0x0010689C, 0x08080808),
    RegisterOperation::Write(0x001068A0, 0x08080808),
    RegisterOperation::Write(0x001068A4, 0x08080808),
    RegisterOperation::Write(0x001068A8, 0x08080808),
    RegisterOperation::Write(0x001068AC, 0x08080808),
    RegisterOperation::Write(0x001068B0, 0x08080808),
    RegisterOperation::Write(0x001068B4, 0x08080808),
    RegisterOperation::Write(0x001068B8, 0x08080808),
    RegisterOperation::Write(0x001068BC, 0x08080808),
    RegisterOperation::Write(0x001068C0, 0x08080808),
    RegisterOperation::Write(0x001068C4, 0x08080808),
    RegisterOperation::Write(0x001068C8, 0x08080808),
    RegisterOperation::Write(0x001068CC, 0x08080808),
    RegisterOperation::Write(0x001068D0, 0x08080808),
    RegisterOperation::Write(0x001068D4, 0x08080808),
    RegisterOperation::Write(0x001068D8, 0x08080808),
    RegisterOperation::Write(0x001068DC, 0x08080808),
    RegisterOperation::Write(0x001068E0, 0x08080808),
    RegisterOperation::Write(0x001068E4, 0x08080808),
    RegisterOperation::Write(0x001068E8, 0x08080808),
    RegisterOperation::Write(0x001068EC, 0x08080808),
    RegisterOperation::Write(0x001068F0, 0x08080808),
    RegisterOperation::Write(0x001068F4, 0x08080808),
    RegisterOperation::Write(0x001068F8, 0x08080808),
    RegisterOperation::Write(0x001068FC, 0x08080808),
    RegisterOperation::Write(0x00106900, 0x08080808),
    RegisterOperation::Write(0x00106904, 0x08080808),
    RegisterOperation::Write(0x00106908, 0x08080808),
    RegisterOperation::Write(0x0010690C, 0x08080808),
    RegisterOperation::Write(0x00106910, 0x08080808),
    RegisterOperation::Write(0x00106914, 0x08080808),
    RegisterOperation::Write(0x00106918, 0x08080808),
    RegisterOperation::Write(0x0010691C, 0x08080808),
    RegisterOperation::Write(0x00106920, 0x08080808),
    RegisterOperation::Write(0x00106924, 0x08080808),
    RegisterOperation::Write(0x00106928, 0x08080808),
    RegisterOperation::Write(0x0010692C, 0x08080808),
    RegisterOperation::Write(0x00106930, 0x08080808),
    RegisterOperation::Write(0x00106934, 0x08080808),
    RegisterOperation::Write(0x00106938, 0x08080808),
    RegisterOperation::Write(0x0010693C, 0x08080808),
    RegisterOperation::Write(0x00106940, 0x08080808),
    RegisterOperation::Write(0x00106944, 0x08080808),
    RegisterOperation::Write(0x00106948, 0x08080808),
    RegisterOperation::Write(0x0010694C, 0x08080808),
    RegisterOperation::Write(0x00106950, 0x08080808),
    RegisterOperation::Write(0x00106954, 0x08080808),
    RegisterOperation::Write(0x00106958, 0x08080808),
    RegisterOperation::Write(0x0010695C, 0x08080808),
    RegisterOperation::Write(0x00106960, 0x08080808),
    RegisterOperation::Write(0x00106964, 0x08080808),
    RegisterOperation::Write(0x00106968, 0x08080808),
    RegisterOperation::Write(0x0010696C, 0x08080808),
    RegisterOperation::Write(0x00106970, 0x08080808),
    RegisterOperation::Write(0x00106974, 0x08080808),
    RegisterOperation::Write(0x00106978, 0x08080808),
    RegisterOperation::Write(0x0010697C, 0x08080808),
    RegisterOperation::Write(0x00106980, 0x08080808),
    RegisterOperation::Write(0x00106984, 0x08080808),
    RegisterOperation::Write(0x00106988, 0x08080808),
    RegisterOperation::Write(0x0010698C, 0x08080808),
    RegisterOperation::Write(0x00106990, 0x08080808),
    RegisterOperation::Write(0x00106994, 0x08080808),
    RegisterOperation::Write(0x00106998, 0x08080808),
    RegisterOperation::Write(0x0010699C, 0x08080808),
    RegisterOperation::Write(0x001069A0, 0x08080808),
    RegisterOperation::Write(0x001069A4, 0x08080808),
    RegisterOperation::Write(0x001069A8, 0x08080808),
    RegisterOperation::Write(0x001069AC, 0x08080808),
    RegisterOperation::Write(0x001069B0, 0x08080808),
    RegisterOperation::Write(0x001069B4, 0x08080808),
    RegisterOperation::Write(0x001069B8, 0x08080808),
    RegisterOperation::Write(0x001069BC, 0x08080808),
    RegisterOperation::Write(0x001069C0, 0x08080808),
    RegisterOperation::Write(0x001069C4, 0x08080808),
    RegisterOperation::Write(0x001069C8, 0x08080808),
    RegisterOperation::Write(0x001069CC, 0x08080808),
    RegisterOperation::Write(0x001069D0, 0x08080808),
    RegisterOperation::Write(0x001069D4, 0x08080808),
    RegisterOperation::Write(0x001069D8, 0x08080808),
    RegisterOperation::Write(0x001069DC, 0x08080808),
    RegisterOperation::Write(0x001069E0, 0x08080808),
    RegisterOperation::Write(0x001069E4, 0x08080808),
    RegisterOperation::Write(0x001069E8, 0x08080808),
    RegisterOperation::Write(0x001069EC, 0x08080808),
    RegisterOperation::Write(0x001069F0, 0x08080808),
    RegisterOperation::Write(0x001069F4, 0x08080808),
    RegisterOperation::Write(0x001069F8, 0x08080808),
    RegisterOperation::Write(0x001069FC, 0x08080808),
    RegisterOperation::Write(0x00106A00, 0x08080808),
    RegisterOperation::Write(0x00106A04, 0x08080808),
    RegisterOperation::Write(0x00106A08, 0x08080808),
    RegisterOperation::Write(0x00106A0C, 0x08080808),
    RegisterOperation::Write(0x00106A10, 0x08080808),
    RegisterOperation::Write(0x00106A14, 0x08080808),
    RegisterOperation::Write(0x00106A18, 0x08080808),
    RegisterOperation::Write(0x00106A1C, 0x08080808),
    RegisterOperation::Write(0x00106A20, 0x08080808),
    RegisterOperation::Write(0x00106A24, 0x08080808),
    RegisterOperation::Write(0x00106A28, 0x08080808),
    RegisterOperation::Write(0x00106A2C, 0x08080808),
    RegisterOperation::Write(0x00106A30, 0x08080808),
    RegisterOperation::Write(0x00106A34, 0x08080808),
    RegisterOperation::Write(0x00106A38, 0x08080808),
    RegisterOperation::Write(0x00106A3C, 0x08080808),
    RegisterOperation::Write(0x00106A40, 0x08080808),
    RegisterOperation::Write(0x00106A44, 0x08080808),
    RegisterOperation::Write(0x00106A48, 0x08080808),
    RegisterOperation::Write(0x00106A4C, 0x08080808),
    RegisterOperation::Write(0x00106A50, 0x08080808),
    RegisterOperation::Write(0x00106A54, 0x08080808),
    RegisterOperation::Write(0x00106A58, 0x08080808),
    RegisterOperation::Write(0x00106A5C, 0x08080808),
    RegisterOperation::Write(0x00106A60, 0x08080808),
    RegisterOperation::Write(0x00106A64, 0x08080808),
    RegisterOperation::Write(0x00106A68, 0x08080808),
    RegisterOperation::Write(0x00106A6C, 0x08080808),
    RegisterOperation::Write(0x00106A70, 0x08080808),
    RegisterOperation::Write(0x00106A74, 0x08080808),
    RegisterOperation::Write(0x00106A78, 0x08080808),
    RegisterOperation::Write(0x00106A7C, 0x08080808),
    RegisterOperation::Write(0x00106A80, 0x08080808),
    RegisterOperation::Write(0x00106A84, 0x08080808),
    RegisterOperation::Write(0x00106A88, 0x08080808),
    RegisterOperation::Write(0x00106A8C, 0x08080808),
    RegisterOperation::Write(0x00106A90, 0x08080808),
    RegisterOperation::Write(0x00106A94, 0x08080808),
    RegisterOperation::Write(0x00106A98, 0x08080808),
    RegisterOperation::Write(0x00106A9C, 0x08080808),
    RegisterOperation::Write(0x00106AA0, 0x08080808),
    RegisterOperation::Write(0x00106AA4, 0x08080808),
    RegisterOperation::Write(0x00106AA8, 0x08080808),
    RegisterOperation::Write(0x00106AAC, 0x08080808),
    RegisterOperation::Write(0x00106AB0, 0x08080808),
    RegisterOperation::Write(0x00106AB4, 0x08080808),
    RegisterOperation::Write(0x00106AB8, 0x08080808),
    RegisterOperation::Write(0x00106ABC, 0x08080808),
    RegisterOperation::Write(0x00106AC0, 0x08080808),
    RegisterOperation::Write(0x00106AC4, 0x08080808),
    RegisterOperation::Write(0x00106AC8, 0x08080808),
    RegisterOperation::Write(0x00106ACC, 0x08080808),
    RegisterOperation::Write(0x00106AD0, 0x08080808),
    RegisterOperation::Write(0x00106AD4, 0x08080808),
    RegisterOperation::Write(0x00106AD8, 0x08080808),
    RegisterOperation::Write(0x00106ADC, 0x08080808),
    RegisterOperation::Write(0x00106AE0, 0x08080808),
    RegisterOperation::Write(0x00106AE4, 0x08080808),
    RegisterOperation::Write(0x00106AE8, 0x08080808),
    RegisterOperation::Write(0x00106AEC, 0x08080808),
    RegisterOperation::Write(0x00106AF0, 0x08080808),
    RegisterOperation::Write(0x00106AF4, 0x08080808),
    RegisterOperation::Write(0x00106AF8, 0x08080808),
    RegisterOperation::Write(0x00106AFC, 0x08080808),
    RegisterOperation::Write(0x00106B00, 0x08080808),
    RegisterOperation::Write(0x00106B04, 0x08080808),
    RegisterOperation::Write(0x00106B08, 0x08080808),
    RegisterOperation::Write(0x00106B0C, 0x08080808),
    RegisterOperation::Write(0x00106B10, 0x08080808),
    RegisterOperation::Write(0x00106B14, 0x08080808),
    RegisterOperation::Write(0x00106B18, 0x08080808),
    RegisterOperation::Write(0x00106B1C, 0x08080808),
    RegisterOperation::Write(0x00106B20, 0x08080808),
    RegisterOperation::Write(0x00106B24, 0x08080808),
    RegisterOperation::Write(0x00106B28, 0x08080808),
    RegisterOperation::Write(0x00106B2C, 0x08080808),
    RegisterOperation::Write(0x00106B30, 0x08080808),
    RegisterOperation::Write(0x00106B34, 0x08080808),
    RegisterOperation::Write(0x00106B38, 0x08080808),
    RegisterOperation::Write(0x00106B3C, 0x08080808),
    RegisterOperation::Write(0x00106B40, 0x08080808),
    RegisterOperation::Write(0x00106B44, 0x08080808),
    RegisterOperation::Write(0x00106B48, 0x08080808),
    RegisterOperation::Write(0x00106B4C, 0x08080808),
    RegisterOperation::Write(0x00106B50, 0x08080808),
    RegisterOperation::Write(0x00106B54, 0x08080808),
    RegisterOperation::Write(0x00106B58, 0x08080808),
    RegisterOperation::Write(0x00106B5C, 0x08080808),
    RegisterOperation::Write(0x00106B60, 0x08080808),
    RegisterOperation::Write(0x00106B64, 0x08080808),
    RegisterOperation::Write(0x00106B68, 0x08080808),
    RegisterOperation::Write(0x00106B6C, 0x08080808),
    RegisterOperation::Write(0x00106B70, 0x08080808),
    RegisterOperation::Write(0x00106B74, 0x08080808),
    RegisterOperation::Write(0x00106B78, 0x08080808),
    RegisterOperation::Write(0x00106B7C, 0x08080808),
    RegisterOperation::Write(0x00106B80, 0x08080808),
    RegisterOperation::Write(0x00106B84, 0x08080808),
    RegisterOperation::Write(0x00106B88, 0x08080808),
    RegisterOperation::Write(0x00106B8C, 0x08080808),
    RegisterOperation::Write(0x00106B90, 0x08080808),
    RegisterOperation::Write(0x00106B94, 0x08080808),
    RegisterOperation::Write(0x0010602C, 0x00000000),
    RegisterOperation::Write(0x00106800, 0x00000000),
    RegisterOperation::Write(0x00106804, 0x00000000),
    RegisterOperation::Write(0x00106808, 0x00000000),
    RegisterOperation::Write(0x0010680C, 0x00000000),
    RegisterOperation::Write(0x00106810, 0x00000000),
    RegisterOperation::Write(0x00106814, 0x00000000),
    RegisterOperation::Write(0x00106818, 0x00000000),
    RegisterOperation::Write(0x0010681C, 0x00000000),
    RegisterOperation::Write(0x00106820, 0x00000000),
    RegisterOperation::Write(0x00106824, 0x00000000),
    RegisterOperation::Write(0x00106828, 0x00000000),
    RegisterOperation::Write(0x0010682C, 0x00000000),
    RegisterOperation::Write(0x00106830, 0x00000000),
    RegisterOperation::Write(0x00106834, 0x00000000),
    RegisterOperation::Write(0x00106838, 0x00000000),
    RegisterOperation::Write(0x0010683C, 0x00000000),
    RegisterOperation::Write(0x00106840, 0x00000000),
    RegisterOperation::Write(0x00106844, 0x00000000),
    RegisterOperation::Write(0x00106848, 0x00000000),
    RegisterOperation::Write(0x0010684C, 0x00000000),
    RegisterOperation::Write(0x00106850, 0x00000000),
    RegisterOperation::Write(0x00106854, 0x00000000),
    RegisterOperation::Write(0x00106858, 0x00000000),
    RegisterOperation::Write(0x0010685C, 0x00000000),
    RegisterOperation::Write(0x00106860, 0x00000000),
    RegisterOperation::Write(0x00106864, 0x00000000),
    RegisterOperation::Write(0x00106868, 0x00000000),
    RegisterOperation::Write(0x0010686C, 0x00000000),
    RegisterOperation::Write(0x00106870, 0x00000000),
    RegisterOperation::Write(0x00106874, 0x00000000),
    RegisterOperation::Write(0x00106878, 0x00000000),
    RegisterOperation::Write(0x0010687C, 0x00000000),
    RegisterOperation::Write(0x00106880, 0x00000000),
    RegisterOperation::Write(0x00106884, 0x00000000),
    RegisterOperation::Write(0x00106888, 0x00000000),
    RegisterOperation::Write(0x0010688C, 0x00000000),
    RegisterOperation::Write(0x00106890, 0x00000000),
    RegisterOperation::Write(0x00106894, 0x00000000),
    RegisterOperation::Write(0x00106898, 0x00000000),
    RegisterOperation::Write(0x0010689C, 0x00000000),
    RegisterOperation::Write(0x001068A0, 0x00000000),
    RegisterOperation::Write(0x001068A4, 0x00000000),
    RegisterOperation::Write(0x001068A8, 0x00000000),
    RegisterOperation::Write(0x001068AC, 0x00000000),
    RegisterOperation::Write(0x001068B0, 0x00000000),
    RegisterOperation::Write(0x001068B4, 0x00000000),
    RegisterOperation::Write(0x001068B8, 0x00000000),
    RegisterOperation::Write(0x001068BC, 0x00000000),
    RegisterOperation::Write(0x001068C0, 0x00000000),
    RegisterOperation::Write(0x001068C4, 0x00000000),
    RegisterOperation::Write(0x001068C8, 0x00000000),
    RegisterOperation::Write(0x001068CC, 0x00000000),
    RegisterOperation::Write(0x001068D0, 0x00000000),
    RegisterOperation::Write(0x001068D4, 0x00000000),
    RegisterOperation::Write(0x001068D8, 0x00000000),
    RegisterOperation::Write(0x001068DC, 0x00000000),
    RegisterOperation::Write(0x001068E0, 0x00000000),
    RegisterOperation::Write(0x001068E4, 0x00000000),
    RegisterOperation::Write(0x001068E8, 0x00000000),
    RegisterOperation::Write(0x001068EC, 0x00000000),
    RegisterOperation::Write(0x001068F0, 0x00000000),
    RegisterOperation::Write(0x001068F4, 0x00000000),
    RegisterOperation::Write(0x001068F8, 0x00000000),
    RegisterOperation::Write(0x001068FC, 0x00000000),
    RegisterOperation::Write(0x00106900, 0x00000000),
    RegisterOperation::Write(0x00106904, 0x00000000),
    RegisterOperation::Write(0x00106908, 0x00000000),
    RegisterOperation::Write(0x0010690C, 0x00000000),
    RegisterOperation::Write(0x00106910, 0x00000000),
    RegisterOperation::Write(0x00106914, 0x00000000),
    RegisterOperation::Write(0x00106918, 0x00000000),
    RegisterOperation::Write(0x0010691C, 0x00000000),
    RegisterOperation::Write(0x00106920, 0x00000000),
    RegisterOperation::Write(0x00106924, 0x00000000),
    RegisterOperation::Write(0x00106928, 0x00000000),
    RegisterOperation::Write(0x0010692C, 0x00000000),
    RegisterOperation::Write(0x00106930, 0x00000000),
    RegisterOperation::Write(0x00106934, 0x00000000),
    RegisterOperation::Write(0x00106938, 0x00000000),
    RegisterOperation::Write(0x0010693C, 0x00000000),
    RegisterOperation::Write(0x00106940, 0x00000000),
    RegisterOperation::Write(0x00106944, 0x00000000),
    RegisterOperation::Write(0x00106948, 0x00000000),
    RegisterOperation::Write(0x0010694C, 0x00000000),
    RegisterOperation::Write(0x00106950, 0x00000000),
    RegisterOperation::Write(0x00106954, 0x00000000),
    RegisterOperation::Write(0x00106958, 0x00000000),
    RegisterOperation::Write(0x0010695C, 0x00000000),
    RegisterOperation::Write(0x00106960, 0x00000000),
    RegisterOperation::Write(0x00106964, 0x00000000),
    RegisterOperation::Write(0x00106968, 0x00000000),
    RegisterOperation::Write(0x0010696C, 0x00000000),
    RegisterOperation::Write(0x00106970, 0x00000000),
    RegisterOperation::Write(0x00106974, 0x00000000),
    RegisterOperation::Write(0x00106978, 0x00000000),
    RegisterOperation::Write(0x0010697C, 0x00000000),
    RegisterOperation::Write(0x00106980, 0x00000000),
    RegisterOperation::Write(0x00106984, 0x00000000),
    RegisterOperation::Write(0x00106988, 0x00000000),
    RegisterOperation::Write(0x0010698C, 0x00000000),
    RegisterOperation::Write(0x00106990, 0x00000000),
    RegisterOperation::Write(0x00106994, 0x00000000),
    RegisterOperation::Write(0x00106998, 0x00000000),
    RegisterOperation::Write(0x0010699C, 0x00000000),
    RegisterOperation::Write(0x001069A0, 0x00000000),
    RegisterOperation::Write(0x001069A4, 0x00000000),
    RegisterOperation::Write(0x001069A8, 0x00000000),
    RegisterOperation::Write(0x001069AC, 0x00000000),
    RegisterOperation::Write(0x001069B0, 0x00000000),
    RegisterOperation::Write(0x001069B4, 0x00000000),
    RegisterOperation::Write(0x001069B8, 0x00000000),
    RegisterOperation::Write(0x001069BC, 0x00000000),
    RegisterOperation::Write(0x001069C0, 0x00000000),
    RegisterOperation::Write(0x001069C4, 0x00000000),
    RegisterOperation::Write(0x001069C8, 0x00000000),
    RegisterOperation::Write(0x001069CC, 0x00000000),
    RegisterOperation::Write(0x001069D0, 0x00000000),
    RegisterOperation::Write(0x001069D4, 0x00000000),
    RegisterOperation::Write(0x001069D8, 0x00000000),
    RegisterOperation::Write(0x001069DC, 0x00000000),
    RegisterOperation::Write(0x001069E0, 0x00000000),
    RegisterOperation::Write(0x001069E4, 0x00000000),
    RegisterOperation::Write(0x001069E8, 0x00000000),
    RegisterOperation::Write(0x001069EC, 0x00000000),
    RegisterOperation::Write(0x001069F0, 0x00000000),
    RegisterOperation::Write(0x001069F4, 0x00000000),
    RegisterOperation::Write(0x001069F8, 0x00000000),
    RegisterOperation::Write(0x001069FC, 0x00000000),
    RegisterOperation::Write(0x00106A00, 0x00000000),
    RegisterOperation::Write(0x00106A04, 0x00000000),
    RegisterOperation::Write(0x00106A08, 0x00000000),
    RegisterOperation::Write(0x00106A0C, 0x00000000),
    RegisterOperation::Write(0x00106A10, 0x00000000),
    RegisterOperation::Write(0x00106A14, 0x00000000),
    RegisterOperation::Write(0x00106A18, 0x00000000),
    RegisterOperation::Write(0x00106A1C, 0x00000000),
    RegisterOperation::Write(0x00106A20, 0x00000000),
    RegisterOperation::Write(0x00106A24, 0x00000000),
    RegisterOperation::Write(0x00106A28, 0x00000000),
    RegisterOperation::Write(0x00106A2C, 0x00000000),
    RegisterOperation::Write(0x00106A30, 0x00000000),
    RegisterOperation::Write(0x00106A34, 0x00000000),
    RegisterOperation::Write(0x00106A38, 0x00000000),
    RegisterOperation::Write(0x00106A3C, 0x00000000),
    RegisterOperation::Write(0x00106A40, 0x00000000),
    RegisterOperation::Write(0x00106A44, 0x00000000),
    RegisterOperation::Write(0x00106A48, 0x00000000),
    RegisterOperation::Write(0x00106A4C, 0x00000000),
    RegisterOperation::Write(0x00106A50, 0x00000000),
    RegisterOperation::Write(0x00106A54, 0x00000000),
    RegisterOperation::Write(0x00106A58, 0x00000000),
    RegisterOperation::Write(0x00106A5C, 0x00000000),
    RegisterOperation::Write(0x00106A60, 0x00000000),
    RegisterOperation::Write(0x00106A64, 0x00000000),
    RegisterOperation::Write(0x00106A68, 0x00000000),
    RegisterOperation::Write(0x00106A6C, 0x00000000),
    RegisterOperation::Write(0x00106A70, 0x00000000),
    RegisterOperation::Write(0x00106A74, 0x00000000),
    RegisterOperation::Write(0x00106A78, 0x00000000),
    RegisterOperation::Write(0x00106A7C, 0x00000000),
    RegisterOperation::Write(0x00106A80, 0x00000000),
    RegisterOperation::Write(0x00106A84, 0x00000000),
    RegisterOperation::Write(0x00106A88, 0x00000000),
    RegisterOperation::Write(0x00106A8C, 0x00000000),
    RegisterOperation::Write(0x00106A90, 0x00000000),
    RegisterOperation::Write(0x00106A94, 0x00000000),
    RegisterOperation::Write(0x00106A98, 0x00000000),
    RegisterOperation::Write(0x00106A9C, 0x00000000),
    RegisterOperation::Write(0x00106AA0, 0x00000000),
    RegisterOperation::Write(0x00106AA4, 0x00000000),
    RegisterOperation::Write(0x00106AA8, 0x00000000),
    RegisterOperation::Write(0x00106AAC, 0x00000000),
    RegisterOperation::Write(0x00106AB0, 0x00000000),
    RegisterOperation::Write(0x00106AB4, 0x00000000),
    RegisterOperation::Write(0x00106AB8, 0x00000000),
    RegisterOperation::Write(0x00106ABC, 0x00000000),
    RegisterOperation::Write(0x00106AC0, 0x00000000),
    RegisterOperation::Write(0x00106AC4, 0x00000000),
    RegisterOperation::Write(0x00106AC8, 0x00000000),
    RegisterOperation::Write(0x00106ACC, 0x00000000),
    RegisterOperation::Write(0x00106AD0, 0x00000000),
    RegisterOperation::Write(0x00106AD4, 0x00000000),
    RegisterOperation::Write(0x00106AD8, 0x00000000),
    RegisterOperation::Write(0x00106ADC, 0x00000000),
    RegisterOperation::Write(0x00106AE0, 0x00000000),
    RegisterOperation::Write(0x00106AE4, 0x00000000),
    RegisterOperation::Write(0x00106AE8, 0x00000000),
    RegisterOperation::Write(0x00106AEC, 0x00000000),
    RegisterOperation::Write(0x00106AF0, 0x00000000),
    RegisterOperation::Write(0x00106AF4, 0x00000000),
    RegisterOperation::Write(0x00106AF8, 0x00000000),
    RegisterOperation::Write(0x00106AFC, 0x00000000),
    RegisterOperation::Write(0x00106B00, 0x00000000),
    RegisterOperation::Write(0x00106B04, 0x00000000),
    RegisterOperation::Write(0x00106B08, 0x00000000),
    RegisterOperation::Write(0x00106B0C, 0x00000000),
    RegisterOperation::Write(0x00106B10, 0x00000000),
    RegisterOperation::Write(0x00106B14, 0x00000000),
    RegisterOperation::Write(0x00106B18, 0x00000000),
    RegisterOperation::Write(0x00106B1C, 0x00000000),
    RegisterOperation::Write(0x00106B20, 0x00000000),
    RegisterOperation::Write(0x00106B24, 0x00000000),
    RegisterOperation::Write(0x00106B28, 0x00000000),
    RegisterOperation::Write(0x00106B2C, 0x00000000),
    RegisterOperation::Write(0x00106B30, 0x00000000),
    RegisterOperation::Write(0x00106B34, 0x00000000),
    RegisterOperation::Write(0x00106B38, 0x00000000),
    RegisterOperation::Write(0x00106B3C, 0x00000000),
    RegisterOperation::Write(0x00106B40, 0x00000000),
    RegisterOperation::Write(0x00106B44, 0x00000000),
    RegisterOperation::Write(0x00106B48, 0x00000000),
    RegisterOperation::Write(0x00106B4C, 0x00000000),
    RegisterOperation::Write(0x00106B50, 0x00000000),
    RegisterOperation::Write(0x00106B54, 0x00000000),
    RegisterOperation::Write(0x00106B58, 0x00000000),
    RegisterOperation::Write(0x00106B5C, 0x00000000),
    RegisterOperation::Write(0x00106B60, 0x00000000),
    RegisterOperation::Write(0x00106B64, 0x00000000),
    RegisterOperation::Write(0x00106B68, 0x00000000),
    RegisterOperation::Write(0x00106B6C, 0x00000000),
    RegisterOperation::Write(0x00106B70, 0x00000000),
    RegisterOperation::Write(0x00106B74, 0x00000000),
    RegisterOperation::Write(0x00106B78, 0x00000000),
    RegisterOperation::Write(0x00106B7C, 0x00000000),
    RegisterOperation::Write(0x00106B80, 0x00000000),
    RegisterOperation::Write(0x00106B84, 0x00000000),
    RegisterOperation::Write(0x00106B88, 0x00000000),
    RegisterOperation::Write(0x00106B8C, 0x00000000),
    RegisterOperation::Write(0x00106B90, 0x00000000),
    RegisterOperation::Write(0x00106B94, 0x00000000),
    RegisterOperation::Write(0x00106400, 0x00010000),
    RegisterOperation::Write(0x00106404, 0x00030002),
    RegisterOperation::Write(0x00106408, 0x00050004),
    RegisterOperation::Write(0x0010640C, 0x00070006),
    RegisterOperation::Write(0x00106410, 0x00090008),
    RegisterOperation::Write(0x00106414, 0x000B000A),
    RegisterOperation::Write(0x00106418, 0x000D000C),
    RegisterOperation::Write(0x0010641C, 0x000F000E),
    RegisterOperation::Write(0x00106420, 0x00110010),
    RegisterOperation::Write(0x00106424, 0x00130012),
    RegisterOperation::Write(0x00106428, 0x00150014),
    RegisterOperation::Write(0x0010642C, 0x00170016),
    RegisterOperation::Write(0x00106430, 0x00190018),
    RegisterOperation::Write(0x00106434, 0x001B001A),
    RegisterOperation::Write(0x00106438, 0x001D001C),
    RegisterOperation::Write(0x0010643C, 0x001F001E),
    RegisterOperation::Write(0x00106440, 0x00210020),
    RegisterOperation::Write(0x00106444, 0x00230022),
    RegisterOperation::Write(0x00106448, 0x00250024),
    RegisterOperation::Write(0x0010644C, 0x00270026),
    RegisterOperation::Write(0x00106450, 0x00290028),
    RegisterOperation::Write(0x00106454, 0x002B002A),
    RegisterOperation::Write(0x00106458, 0x002D002C),
    RegisterOperation::Write(0x0010645C, 0x002F002E),
    RegisterOperation::Write(0x00106460, 0x00310030),
    RegisterOperation::Write(0x00106464, 0x00330032),
    RegisterOperation::Write(0x00106468, 0x00350034),
    RegisterOperation::Write(0x0010646C, 0x00370036),
    RegisterOperation::Write(0x00106470, 0x00390038),
    RegisterOperation::Write(0x00106474, 0x003B003A),
    RegisterOperation::Write(0x00106478, 0x003D003C),
    RegisterOperation::Write(0x0010647C, 0x003F003E),
    RegisterOperation::Write(0x00106480, 0x00410040),
    RegisterOperation::Write(0x00106484, 0x00430042),
    RegisterOperation::Write(0x00106488, 0x00450044),
    RegisterOperation::Write(0x0010648C, 0x00470046),
    RegisterOperation::Write(0x00106490, 0x00490048),
    RegisterOperation::Write(0x00106494, 0x004B004A),
    RegisterOperation::Write(0x00106498, 0x004D004C),
    RegisterOperation::Write(0x0010649C, 0x004F004E),
    RegisterOperation::Write(0x001064A0, 0x00510050),
    RegisterOperation::Write(0x001064A4, 0x00530052),
    RegisterOperation::Write(0x001064A8, 0x00550054),
    RegisterOperation::Write(0x001064AC, 0x00570056),
    RegisterOperation::Write(0x001064B0, 0x00590058),
    RegisterOperation::Write(0x001064B4, 0x005B005A),
    RegisterOperation::Write(0x001064B8, 0x005D005C),
    RegisterOperation::Write(0x001064BC, 0x005F005E),
    RegisterOperation::Write(0x001064C0, 0x00610060),
    RegisterOperation::Write(0x001064C4, 0x00630062),
    RegisterOperation::Write(0x001064C8, 0x00650064),
    RegisterOperation::Write(0x001064CC, 0x00670066),
    RegisterOperation::Write(0x001064D0, 0x00690068),
    RegisterOperation::Write(0x001064D4, 0x006B006A),
    RegisterOperation::Write(0x001064D8, 0x006D006C),
    RegisterOperation::Write(0x001064DC, 0x006F006E),
    RegisterOperation::Write(0x001064E0, 0x00710070),
    RegisterOperation::Write(0x001064E4, 0x00730072),
    RegisterOperation::Write(0x001064E8, 0x00750074),
    RegisterOperation::Write(0x001064EC, 0x00770076),
    RegisterOperation::Write(0x001064F0, 0x00790078),
    RegisterOperation::Write(0x001064F4, 0x007B007A),
    RegisterOperation::Write(0x001064F8, 0x007D007C),
    RegisterOperation::Write(0x001064FC, 0x007F007E),
    RegisterOperation::Write(0x00106500, 0x00810080),
    RegisterOperation::Write(0x00106504, 0x00830082),
    RegisterOperation::Write(0x00106508, 0x00850084),
    RegisterOperation::Write(0x0010650C, 0x00870086),
    RegisterOperation::Write(0x00106510, 0x00890088),
    RegisterOperation::Write(0x00106514, 0x008B008A),
    RegisterOperation::Write(0x00106518, 0x008D008C),
    RegisterOperation::Write(0x0010651C, 0x008F008E),
    RegisterOperation::Write(0x00106520, 0x00910090),
    RegisterOperation::Write(0x00106524, 0x00930092),
    RegisterOperation::Write(0x00106528, 0x00950094),
    RegisterOperation::Write(0x0010652C, 0x00970096),
    RegisterOperation::Write(0x00106530, 0x00990098),
    RegisterOperation::Write(0x00106534, 0x009B009A),
    RegisterOperation::Write(0x00106538, 0x009D009C),
    RegisterOperation::Write(0x0010653C, 0x009F009E),
    RegisterOperation::Write(0x00106540, 0x00A100A0),
    RegisterOperation::Write(0x00106544, 0x00A300A2),
    RegisterOperation::Write(0x00106548, 0x00A500A4),
    RegisterOperation::Write(0x0010654C, 0x00A700A6),
    RegisterOperation::Write(0x00106550, 0x00A900A8),
    RegisterOperation::Write(0x00106554, 0x00AB00AA),
    RegisterOperation::Write(0x00106558, 0x00AD00AC),
    RegisterOperation::Write(0x0010655C, 0x00AF00AE),
    RegisterOperation::Write(0x00106560, 0x00B100B0),
    RegisterOperation::Write(0x00106564, 0x00B300B2),
    RegisterOperation::Write(0x00106568, 0x00B500B4),
    RegisterOperation::Write(0x0010656C, 0x00B700B6),
    RegisterOperation::Write(0x00106570, 0x00B900B8),
    RegisterOperation::Write(0x00106574, 0x00BB00BA),
    RegisterOperation::Write(0x00106578, 0x00BD00BC),
    RegisterOperation::Write(0x0010657C, 0x00BF00BE),
    RegisterOperation::Write(0x00106580, 0x00C100C0),
    RegisterOperation::Write(0x00106584, 0x00C300C2),
    RegisterOperation::Write(0x00106588, 0x00C500C4),
    RegisterOperation::Write(0x0010658C, 0x00C700C6),
    RegisterOperation::Write(0x00106590, 0x00C900C8),
    RegisterOperation::Write(0x00106594, 0x00CB00CA),
    RegisterOperation::Write(0x00106598, 0x00CD00CC),
    RegisterOperation::Write(0x0010659C, 0x00CF00CE),
    RegisterOperation::Write(0x001065A0, 0x00D100D0),
    RegisterOperation::Write(0x001065A4, 0x00D300D2),
    RegisterOperation::Write(0x001065A8, 0x00D500D4),
    RegisterOperation::Write(0x001065AC, 0x00D700D6),
    RegisterOperation::Write(0x001065B0, 0x00D900D8),
    RegisterOperation::Write(0x001065B4, 0x00DB00DA),
    RegisterOperation::Write(0x001065B8, 0x00DD00DC),
    RegisterOperation::Write(0x001065BC, 0x00DF00DE),
    RegisterOperation::Write(0x001065C0, 0x00E100E0),
    RegisterOperation::Write(0x001065C4, 0x00E300E2),
    RegisterOperation::Write(0x001065C8, 0x00E500E4),
    RegisterOperation::Write(0x001065CC, 0x00E700E6),
    RegisterOperation::Write(0x001065D0, 0x00E900E8),
    RegisterOperation::Write(0x001065D4, 0x00EB00EA),
    RegisterOperation::Write(0x001065D8, 0x00ED00EC),
    RegisterOperation::Write(0x001065DC, 0x00EF00EE),
    RegisterOperation::Write(0x001065E0, 0x00F100F0),
    RegisterOperation::Write(0x001065E4, 0x00F300F2),
    RegisterOperation::Write(0x001065E8, 0x00F500F4),
    RegisterOperation::Write(0x001065EC, 0x00F700F6),
    RegisterOperation::Write(0x001065F0, 0x00F900F8),
    RegisterOperation::Write(0x001065F4, 0x00FB00FA),
    RegisterOperation::Write(0x001065F8, 0x00FD00FC),
    RegisterOperation::Write(0x001065FC, 0x00FF00FE),
    RegisterOperation::Write(0x00106600, 0x01010100),
    RegisterOperation::Write(0x00106604, 0x01030102),
    RegisterOperation::Write(0x00106608, 0x01050104),
    RegisterOperation::Write(0x0010660C, 0x01070106),
    RegisterOperation::Write(0x00106610, 0x01090108),
    RegisterOperation::Write(0x00106614, 0x010B010A),
    RegisterOperation::Write(0x00106618, 0x010D010C),
    RegisterOperation::Write(0x0010661C, 0x010F010E),
    RegisterOperation::Write(0x00106620, 0x01110110),
    RegisterOperation::Write(0x00106624, 0x01130112),
    RegisterOperation::Write(0x00106628, 0x01150114),
    RegisterOperation::Write(0x0010662C, 0x01170116),
    RegisterOperation::Write(0x00106630, 0x01190118),
    RegisterOperation::Write(0x00106634, 0x011B011A),
    RegisterOperation::Write(0x00106638, 0x011D011C),
    RegisterOperation::Write(0x0010663C, 0x011F011E),
    RegisterOperation::Write(0x00106640, 0x01210120),
    RegisterOperation::Write(0x00106644, 0x01230122),
    RegisterOperation::Write(0x00106648, 0x01250124),
    RegisterOperation::Write(0x0010664C, 0x01270126),
    RegisterOperation::Write(0x00106650, 0x01290128),
    RegisterOperation::Write(0x00106654, 0x012B012A),
    RegisterOperation::Write(0x00106658, 0x012D012C),
    RegisterOperation::Write(0x0010665C, 0x012F012E),
    RegisterOperation::Write(0x00106660, 0x01310130),
    RegisterOperation::Write(0x00106664, 0x01330132),
    RegisterOperation::Write(0x00106668, 0x01350134),
    RegisterOperation::Write(0x0010666C, 0x01370136),
    RegisterOperation::Write(0x00106670, 0x01390138),
    RegisterOperation::Write(0x00106674, 0x013B013A),
    RegisterOperation::Write(0x00106678, 0x013D013C),
    RegisterOperation::Write(0x0010667C, 0x013F013E),
    RegisterOperation::Write(0x00106680, 0x01410140),
    RegisterOperation::Write(0x00106684, 0x01430142),
    RegisterOperation::Write(0x00106688, 0x01450144),
    RegisterOperation::Write(0x0010668C, 0x01470146),
    RegisterOperation::Write(0x00106690, 0x01490148),
    RegisterOperation::Write(0x00106694, 0x014B014A),
    RegisterOperation::Write(0x00106698, 0x014D014C),
    RegisterOperation::Write(0x0010669C, 0x014F014E),
    RegisterOperation::Write(0x001066A0, 0x01510150),
    RegisterOperation::Write(0x001066A4, 0x01530152),
    RegisterOperation::Write(0x001066A8, 0x01550154),
    RegisterOperation::Write(0x001066AC, 0x01570156),
    RegisterOperation::Write(0x001066B0, 0x01590158),
    RegisterOperation::Write(0x001066B4, 0x015B015A),
    RegisterOperation::Write(0x001066B8, 0x015D015C),
    RegisterOperation::Write(0x001066BC, 0x015F015E),
    RegisterOperation::Write(0x001066C0, 0x01610160),
    RegisterOperation::Write(0x001066C4, 0x01630162),
    RegisterOperation::Write(0x001066C8, 0x01650164),
    RegisterOperation::Write(0x001066CC, 0x01670166),
    RegisterOperation::Write(0x001066D0, 0x01690168),
    RegisterOperation::Write(0x001066D4, 0x016B016A),
    RegisterOperation::Write(0x001066D8, 0x016D016C),
    RegisterOperation::Write(0x001066DC, 0x016F016E),
    RegisterOperation::Write(0x001066E0, 0x01710170),
    RegisterOperation::Write(0x001066E4, 0x01730172),
    RegisterOperation::Write(0x001066E8, 0x01750174),
    RegisterOperation::Write(0x001066EC, 0x01770176),
    RegisterOperation::Write(0x001066F0, 0x01790178),
    RegisterOperation::Write(0x001066F4, 0x017B017A),
    RegisterOperation::Write(0x001066F8, 0x017D017C),
    RegisterOperation::Write(0x001066FC, 0x017F017E),
    RegisterOperation::Write(0x00106700, 0x01810180),
    RegisterOperation::Write(0x00106704, 0x01830182),
    RegisterOperation::Write(0x00106708, 0x01850184),
    RegisterOperation::Write(0x0010670C, 0x01870186),
    RegisterOperation::Write(0x00106710, 0x01890188),
    RegisterOperation::Write(0x00106714, 0x018B018A),
    RegisterOperation::Write(0x00106718, 0x018D018C),
    RegisterOperation::Write(0x0010671C, 0x018F018E),
    RegisterOperation::Write(0x00106720, 0x01910190),
    RegisterOperation::Write(0x00106724, 0x01930192),
    RegisterOperation::Write(0x00106728, 0x01950194),
    RegisterOperation::Write(0x0010672C, 0x01970196),
    RegisterOperation::Write(0x00106730, 0x01990198),
    RegisterOperation::Write(0x00106734, 0x019B019A),
    RegisterOperation::Write(0x00106738, 0x019D019C),
    RegisterOperation::Write(0x0010673C, 0x019F019E),
    RegisterOperation::Write(0x00106740, 0x01A101A0),
    RegisterOperation::Write(0x00106744, 0x01A301A2),
    RegisterOperation::Write(0x00106748, 0x01A501A4),
    RegisterOperation::Write(0x0010674C, 0x01A701A6),
    RegisterOperation::Write(0x00106750, 0x01A901A8),
    RegisterOperation::Write(0x00106754, 0x01AB01AA),
    RegisterOperation::Write(0x00106758, 0x01AD01AC),
    RegisterOperation::Write(0x0010675C, 0x01AF01AE),
    RegisterOperation::Write(0x00106760, 0x01B101B0),
    RegisterOperation::Write(0x00106764, 0x01B301B2),
    RegisterOperation::Write(0x00106768, 0x01B501B4),
    RegisterOperation::Write(0x0010676C, 0x01B701B6),
    RegisterOperation::Write(0x00106770, 0x01B901B8),
    RegisterOperation::Write(0x00106774, 0x01BB01BA),
    RegisterOperation::Write(0x00106778, 0x01BD01BC),
    RegisterOperation::Write(0x0010677C, 0x01BF01BE),
    RegisterOperation::Write(0x00106780, 0x01C101C0),
    RegisterOperation::Write(0x00106784, 0x01C301C2),
    RegisterOperation::Write(0x00106788, 0x01C501C4),
    RegisterOperation::Write(0x0010678C, 0x01C701C6),
    RegisterOperation::Write(0x00106790, 0x01C901C8),
    RegisterOperation::Write(0x00106794, 0x01CB01CA),
    RegisterOperation::Write(0x00106798, 0x01CD01CC),
    RegisterOperation::Write(0x0010679C, 0x01CF01CE),
    RegisterOperation::Write(0x001067A0, 0x01D101D0),
    RegisterOperation::Write(0x001067A4, 0x01D301D2),
    RegisterOperation::Write(0x001067A8, 0x01D501D4),
    RegisterOperation::Write(0x001067AC, 0x01D701D6),
    RegisterOperation::Write(0x001067B0, 0x01D901D8),
    RegisterOperation::Write(0x001067B4, 0x01DB01DA),
    RegisterOperation::Write(0x001067B8, 0x01DD01DC),
    RegisterOperation::Write(0x001067BC, 0x01DF01DE),
    RegisterOperation::Write(0x001067C0, 0x01E101E0),
    RegisterOperation::Write(0x001067C4, 0x01E301E2),
    RegisterOperation::Write(0x001067C8, 0x01E501E4),
    RegisterOperation::Write(0x001067CC, 0x01E701E6),
    RegisterOperation::Write(0x001067D0, 0x01E901E8),
    RegisterOperation::Write(0x001067D4, 0x01EB01EA),
    RegisterOperation::Write(0x001067D8, 0x01ED01EC),
    RegisterOperation::Write(0x001067DC, 0x01EF01EE),
    RegisterOperation::Write(0x001067E0, 0x01F101F0),
    RegisterOperation::Write(0x001067E4, 0x01F301F2),
    RegisterOperation::Write(0x001067E8, 0x01F501F4),
    RegisterOperation::Write(0x001067EC, 0x01F701F6),
    RegisterOperation::Write(0x001067F0, 0x01F901F8),
    RegisterOperation::Write(0x001067F4, 0x01FB01FA),
    RegisterOperation::Write(0x001067F8, 0x01FD01FC),
    RegisterOperation::Write(0x001067FC, 0x01FF01FE),
    RegisterOperation::Write(0x00106080, 0x03020100),
    RegisterOperation::Write(0x00106084, 0x07060504),
    RegisterOperation::Write(0x00106088, 0x0B0A0908),
    RegisterOperation::Write(0x0010608C, 0x0F0E0D0C),
    RegisterOperation::Write(0x00106090, 0x13121110),
    RegisterOperation::Write(0x00106094, 0x17161514),
    RegisterOperation::Write(0x00106098, 0x1B1A1918),
    RegisterOperation::Write(0x0010609C, 0x1F1E1D1C),
    RegisterOperation::Write(0x001060C0, 0x03020100),
    RegisterOperation::Write(0x001060C4, 0x07060504),
    RegisterOperation::Write(0x001060C8, 0x0B0A0908),
    RegisterOperation::Write(0x001060CC, 0x0F0E0D0C),
    RegisterOperation::Write(0x001060D0, 0x13121110),
    RegisterOperation::Write(0x001060D4, 0x17161514),
    RegisterOperation::Write(0x001060D8, 0x1B1A1918),
    RegisterOperation::Write(0x001060DC, 0x1F1E1D1C),
    RegisterOperation::Write(0x00106028, 0x00000003),
    RegisterOperation::Write(0x00106050, 0x00000000),
    RegisterOperation::Write(0x00106060, 0x00000000),
    RegisterOperation::Write(0x00106070, 0x00000000),
    RegisterOperation::Write(0x00106000, 0x00155401),
    RegisterOperation::Write(0x0010D000, 0x00000005),
    RegisterOperation::Write(0x0010C000, 0x00000005),
    RegisterOperation::Write(0x00109000, 0x00000208),
    RegisterOperation::Write(0x00107008, 0x00000001),
    RegisterOperation::Write(0x00107000, 0x00070001),
    RegisterOperation::Write(0x00108000, 0x0001E085),
    RegisterOperation::Write(0x00109008, 0x0000064A),
    RegisterOperation::Write(0x00100044, 0xCCFFFCCF),
    RegisterOperation::Write(0x00100004, 0xF0005442),
    // Analog INIT
    RegisterOperation::Write(0x00100004, 0xF0005042),
    RegisterOperation::Write(0x0010002C, 0x00200224),
    RegisterOperation::Write(0x0010A000, 0x00000101),
    RegisterOperation::Write(0x0010A000, 0x000000A1),
    RegisterOperation::Delay(200),
    RegisterOperation::Read(0x0010A000, 0x000002A1, 0x00000200),
    RegisterOperation::Write(0x0010A008, 0x00002405),
    RegisterOperation::Delay(200),
    RegisterOperation::Read(0x0010A008, 0x00082405, 0x00080000),
    RegisterOperation::Write(0x0010A004, 0x00000101),
    RegisterOperation::Write(0x0010A004, 0x000000A1),
    RegisterOperation::Delay(200),
    RegisterOperation::Read(0x0010A004, 0x000002A1, 0x00000200),
    RegisterOperation::Write(0x0010A020, 0x00000170),
    RegisterOperation::Write(0x0010A020, 0x00000160),
    RegisterOperation::Delay(200),
    RegisterOperation::Write(0x0010A008, 0x00082401),
    RegisterOperation::Write(0x0010004C, 0x00007141),
    RegisterOperation::Write(0x00100054, 0x00000210),
    RegisterOperation::Write(0x00100008, 0x60000000),
    RegisterOperation::Write(0x00101104, 0x00000001),
    RegisterOperation::Write(0x0010A010, 0x0000A06B),
    RegisterOperation::Delay(300),
    RegisterOperation::Write(0x00101100, 0x00000004),
    RegisterOperation::Delay(200),
    RegisterOperation::Read(0x0010A010, 0x0180A06B, 0x00800000),
    RegisterOperation::Write(0x0010A010, 0x0180A063),
    RegisterOperation::Write(0x0010A00C, 0x00000404),
    RegisterOperation::Write(0x0010A00C, 0x00000405),
    RegisterOperation::Delay(1000),
    RegisterOperation::Write(0x0010A00C, 0x00000401),
    RegisterOperation::Delay(300),
    RegisterOperation::Write(0x00100070, 0x00400000),
    RegisterOperation::Write(0x0010006C, 0x0EE47117),
    RegisterOperation::Delay(100),
    RegisterOperation::Write(0x0010006C, 0x0EE4711F),
    RegisterOperation::Delay(100),
    RegisterOperation::Write(0x00100070, 0x00480000),
    RegisterOperation::Delay(1000),
    RegisterOperation::Write(0x00101044, 0x01A98A7C),
    RegisterOperation::Write(0x00101040, 0x01A98A94),
    RegisterOperation::Write(0x00101048, 0x01A98B94),
    RegisterOperation::Write(0x0010101C, 0x01A1575B),
    RegisterOperation::Write(0x00101050, 0x01A1B251),
    RegisterOperation::Write(0x00101020, 0x01A9CD44),
    RegisterOperation::Write(0x0010100C, 0x01A1FF00),
    RegisterOperation::Write(0x00101018, 0x01A13734),
    RegisterOperation::Write(0x00101010, 0x01A16373),
    RegisterOperation::Write(0x00101014, 0x01A15050),
    RegisterOperation::Write(0x00101004, 0x01A1E84A),
    RegisterOperation::Write(0x00101008, 0x01210000),
    RegisterOperation::Write(0x00101000, 0x01A1C469),
    RegisterOperation::Write(0x0010104C, 0x01A19278),
    RegisterOperation::Write(0x00101100, 0x00000005),
    RegisterOperation::Write(0x0010002C, 0x0022C724),
    RegisterOperation::Write(0x00100018, 0x00000200),
    RegisterOperation::Read(0x00100014, 0xA0301003, 0xFFFFFFFF)
};

static const std::vector<RegisterOperation> gen41_evk2_start = {
    RegisterOperation::Write(0x00000044, 0x00000001),
    RegisterOperation::Write(0x00000014, 0x00000001),
    RegisterOperation::Write(0x0070F000, 0x00400001),
    RegisterOperation::Write(0x0010B000, 0x00000159),
    RegisterOperation::Write(0x00109028, 0x00000000),
    RegisterOperation::Write(0x00109008, 0x0000064B),
    // Analog START
    RegisterOperation::Write(0x0010002C, 0x0022C724),
    RegisterOperation::WriteField(0x00100004, 0xF0005442, 0x00000400),
    RegisterOperation::Write(0x00000018, 0x00000001),
    RegisterOperation::WriteField(0x00000008, 0x0000004F, 0x1)
};

static const std::vector<RegisterOperation> gen41_evk2_stop = {
    RegisterOperation::Write(0x00000018, 0x00000000),
    RegisterOperation::WriteField(0x00000008, 0x0000004E, 0x1),
    // Analog STOP
    RegisterOperation::WriteField(0x00100004, 0xF0005042, 0x00000400),
    RegisterOperation::Write(0x0010002C, 0x0022C324),
    // Digital STOP
    RegisterOperation::Read(0x0010C000, 0x00000005, 0x00000007),
    RegisterOperation::Write(0x0010C000, 0x00000002),
    RegisterOperation::Write(0x00109028, 0x00000002),
    RegisterOperation::Write(0x0010C000, 0x00000005),
    RegisterOperation::Delay(1000),
    RegisterOperation::Write(0x00109008, 0x0000064A),
    RegisterOperation::Read(0x00700010, 0x00030002, 0xFFFF000F),
    RegisterOperation::Read(0x00700024, 0x00060000, 0xE07E3FFF),
    RegisterOperation::Write(0x0010B000, 0x00000158),
    RegisterOperation::Delay(300)
};

static const std::vector<RegisterOperation> gen41_evk2_destroy = {
    // Analog DESTROY
    RegisterOperation::Write(0x00100070, 0x00400000),
    RegisterOperation::Write(0x0010006C, 0x0EE47114),
    RegisterOperation::Delay(500),
    RegisterOperation::Write(0x0010A00C, 0x00000400),
    RegisterOperation::Delay(500),
    RegisterOperation::Write(0x0010A010, 0x00008068),
    RegisterOperation::Delay(200),
    RegisterOperation::Write(0x00101104, 0x00000000),
    RegisterOperation::Delay(200),
    RegisterOperation::Write(0x0010A020, 0x00000060),
    RegisterOperation::Delay(200),
    RegisterOperation::Write(0x0010A004, 0x000002A0),
    RegisterOperation::Delay(200),
    RegisterOperation::Write(0x0010A008, 0x00002400),
    RegisterOperation::Delay(200),
    RegisterOperation::Write(0x0010A000, 0x000002A0),
    // Digital DESTROY
    RegisterOperation::Write(0x0010B044, 0x00000000),
    RegisterOperation::Write(0x0010B004, 0x0000000A),
    RegisterOperation::Write(0x0010B040, 0x0000000E),
    RegisterOperation::Write(0x0010B0C8, 0x00000000),
    RegisterOperation::Write(0x0010B040, 0x00000006),
    RegisterOperation::Write(0x0010B040, 0x00000004),
    RegisterOperation::Write(0x00100000, 0x4C006442),
    RegisterOperation::Write(0x00100000, 0x0C006442),
    RegisterOperation::Write(0x0010B07C, 0x00000000),
    RegisterOperation::Write(0x0070F030, 0x00000200),
    RegisterOperation::Write(0x0070F030, 0x00000000),
    RegisterOperation::Delay(1000),
    RegisterOperation::Write(0x0070F038, 0x01405000),
    RegisterOperation::Write(0x0070F024, 0x00000001),
    RegisterOperation::Write(0x0070F024, 0x00000000),
    RegisterOperation::Write(0x00000004, 0x00000777),
    RegisterOperation::Write(0x00000004, 0x00010111),
    RegisterOperation::Write(0x00000004, 0x00000000)
};

static Issd gen41_evk2_sequence = Issd{
    gen41_evk2_init,
    gen41_evk2_start,
    gen41_evk2_stop,
    gen41_evk2_destroy,
};

} // namespace Metavision

#endif // METAVISION_HAL_GEN41_EVK2_ISSD_H

// clang-format on
